---
title: Node.js
---

Univer にはアイソモーフィックな機能があり、ブラウザだけでなく Node.js 環境でも動作します。Univer をベースに Node.js 上でデータ処理サービスを開発し、サーバーサイドでドキュメントを生成・編集したり、Facade API を通じて Univer Sheets と連携することができます。

<PlaygroundFrame lang="en-US" slug="sheets/node-via-plugin" clickToShow />

Node.js 上の Univer の使い方は、ブラウザ版とほぼ同じです。プリセットモードでは、すぐに使えるプリセットパッケージを提供しています。プラグインモードでは、UI に関わるプラグインだけ除外すれば利用できます。

### プリセットモード

#### インストール

```package-install
npm install @univerjs/preset-sheets-node-core
```

#### 使い方

```typescript
import { UniverSheetsNodeCorePreset } from '@univerjs/preset-sheets-node-core' // [!code ++]
import sheetsNodeCoreEnUS from '@univerjs/preset-sheets-node-core/locales/en-US' // [!code ++]
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'

async function run(): Promise<void> {
  const { univerAPI } = createUniver({
    locale: LocaleType.EN_US,
    locales: {
      [LocaleType.EN_US]: mergeLocales(
        sheetsNodeCoreEnUS, // [!code ++]
      ),
    },
    presets: [
      UniverSheetsNodeCorePreset(), // [!code ++]
    ],
  })

  // ここで任意の Facade API を呼び出してドキュメント処理が可能です
}

run()
```

### プラグインモード

#### インストール

```package-install
npm install @univerjs/core @univerjs/engine-render @univerjs/engine-formula @univerjs/docs @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-numfmt
```

#### 使い方

```typescript
import { LocaleType, mergeLocales, Univer, UniverInstanceType } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import { UniverDocsPlugin } from '@univerjs/docs'
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
import { UniverSheetsPlugin } from '@univerjs/sheets'
import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
import SheetsEnUS from '@univerjs/sheets/locale/en-US'

import '@univerjs/engine-formula/facade'
import '@univerjs/sheets/facade'
import '@univerjs/sheets-formula/facade'
import '@univerjs/sheets-numfmt/facade'

const univer = new Univer({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(
      SheetsEnUS,
    ),
  },
})

univer.registerPlugin(UniverRenderEnginePlugin)
univer.registerPlugin(UniverFormulaEnginePlugin)
univer.registerPlugin(UniverDocsPlugin)
univer.registerPlugin(UniverSheetsPlugin)
univer.registerPlugin(UniverSheetsFormulaPlugin)
univer.registerPlugin(UniverSheetsNumfmtPlugin)

univer.createUnit(UniverInstanceType.UNIVER_SHEET, {})
```
